<html>
	<head>
		<meta charset="utf-8"></meta>
		<title>BStream</title>
		<link href="./style.css" rel="stylesheet" type="text/css"/>
	</head>
	<body>
		<div class="class" name="BStream">
			<h1>BStream</h1>
			<p>继承自<a href="BObject.html">BObject</a></p>
			<p id="resume">BStream为数据流对象，提供标准化的读写接口。<a href="#desc">详细</a></p>
			<h2>public</h2>
			<table id="public">
				<tr><td align="right">virtual IOMode </td><td><a href="#mode()">mode</a>() const = 0;</td></tr>
				<tr><td align="right">virtual int </td><td><a href="#offset()">offset</a>() const = 0;</td></tr>
				<tr><td align="right">virtual int </td><td><a href="#size()">size</a>() const = 0;</td></tr>
				<tr><td align="right">virtual bool </td><td><a href="#seek(int)">seek</a>(int offset) const = 0;</td></tr>
				<tr><td align="right">virtual bool </td><td><a href="#wseek(int)">wseek</a>(int offset) = 0;</td></tr>
				<tr><td align="right">virtual bool </td><td><a href="#read(void*, int)">read</a>(void* data, int size) const = 0;</td></tr>
				<tr><td align="right">virtual bool </td><td><a href="#write(const void*, int)">write</a>(const void* data, int size) = 0;</td></tr>
				<tr><td align="right">virtual bool </td><td><a href="#read(BString&)">read</a>(BString& text) const = 0;</td></tr>
				<tr><td align="right">virtual bool </td><td><a href="#write(const BString&)">write</a>(const BString& text) = 0;</td></tr>
				<tr><td align="right">virtual bool </td><td><a href="#readCStr(char*, int)">readCStr</a>(char* cstr, int size) const = 0;</td></tr>
				<tr><td align="right">virtual bool </td><td><a href="#writeCStr(const char*,int)">writeCStr</a>(const char* cstr, int size = -1) = 0;</td></tr>
				<tr><td align="right">virtual bool </td><td><a href="#readLine(char*, int)">readLine</a>(char* cstr, int size) const = 0;</td></tr>
				<tr><td align="right">virtual bool </td><td><a href="#writeLine(const char*,int)">writeLine</a>(const char* cstr, int size = -1) = 0;</td></tr>
				<tr><td align="right">virtual bool </td><td><a href="#readText(BString&, int)">readText</a>(BString& text, int size) const = 0;</td></tr>
				<tr><td align="right">virtual bool </td><td><a href="#writeText(const BString&,int)">writeText</a>(const BString& text, int size = -1) = 0;</td></tr>
				<tr><td align="right">virtual bool </td><td><a href="#readLine(BString&)">readLine</a>(BString& line) const = 0;</td></tr>
				<tr><td align="right">virtual bool </td><td><a href="#writeLine(const BString&)">writeLine</a>(const BString& line) = 0;</td></tr>
				<tr><td align="right">bool </td><td><a href="#move(int)">move</a>(int offset) const;</td></tr>
				<tr><td align="right">bool </td><td><a href="#wmove(int)">wmove</a>(int offset);</td></tr>
				<tr><td align="right">bool </td><td><a href="#begin()">begin</a>() const;</td></tr>
				<tr><td align="right">bool </td><td><a href="#end()">end</a>() const;</td></tr>
				<tr><td align="right">bool </td><td><a href="#write(const char*)">write</a>(const char* cstr);</td></tr>
				<tr><td align="right">bool </td><td><a href="#write(char)">write</a>(char ch);</td></tr>
				<tr><td align="right">bool </td><td><a href="#write(char, int)">write</a>(char ch, int count);</td></tr>
				<tr><td align="right">bool </td><td><a href="#read(BByteArray&, int)">read</a>(BByteArray& bytes, int size) const;</td></tr>
				<tr><td align="right">bool </td><td><a href="#read(BByteArray&)">read</a>(BByteArray& bytes) const;</td></tr>
				<tr><td align="right">bool </td><td><a href="#write(const BByteArray&, int)">write</a>(const BByteArray& bytes, int size);</td></tr>
				<tr><td align="right">bool </td><td><a href="#write(const BByteArray&)">write</a>(const BByteArray& bytes);</td></tr>
				<tr><td align="right">inline bool </td><td><a href="#read(T&) const">read</a>(T& value) const;</td></tr>
				<tr><td align="right">inline bool </td><td><a href="#write(const T&)">write</a>(const T& value);</td></tr>
				<tr><td align="right">inline BStream& </td><td><a href="#operator << (const T&)">operator &lt;&lt; </a>(const T& value);</td></tr>
				<tr><td align="right">inline BStream& </td><td><a href="#operator >> (const T&)">operator &gt;&gt; </a>(const T& value);</td></tr>
			</table>
			<div id="desc">
				<h2>详细介绍：</h2>
				<p>BStream为数据流对象，提供标准化的读写接口。被BFile和BBuffer两个类继承，各种读写功能都依托于数据流对象，所有当你需要扩展数据读写功能时，请继承此类。</p>
			</div>
			<h2 id="docs">成员文档：</h2>
			<div id="mode()">
				<h3>virtual IOMode mode() const = 0;</h3>
				<p>纯虚接口，要求返回数据流的操作模式，请参考枚举IOMode。</p>
			</div>
			<div id="offset()">
				<h3>virtual int offset() const = 0;</h3>
				<p>纯虚接口，要求返回当前读写指针的偏移值。</p>
			</div>
			<div id="size()">
				<h3>virtual int size() const = 0;</h3>
			</div>
			<div id="seek(int)">
				<h3>virtual bool seek(int offset) const = 0;</h3>
			</div>
			<div id="wseek(int)">
				<h3>virtual bool wseek(int offset) = 0;</h3>
			</div>
			<div id="read(void*, int)">
				<h3>virtual bool read(void* data, int size) const = 0;</h3>
			</div>
			<div id="write(const void*, int)">
				<h3>virtual bool write(const void* data, int size) = 0;</h3>
			</div>
			<div id="read(BString&)">
				<h3>virtual bool read(BString&amp; text) const = 0;</h3>
			</div>
			<div id="write(const BString&)">
				<h3>virtual bool write(const BString&amp; text) = 0;</h3>
			</div>
			<div id="readCStr(char*, int)">
				<h3>virtual bool readCStr(char* cstr, int size) const = 0;</h3>
			</div>
			<div id="writeCStr(const char*,int)">
				<h3>virtual bool writeCStr(const char* cstr, int size = -1) = 0;</h3>
			</div>
			<div id="readLine(char*, int)">
				<h3>virtual bool readLine(char* cstr, int size) const = 0;</h3>
			</div>
			<div id="writeLine(const char*,int)">
				<h3>virtual bool writeLine(const char* cstr, int size = -1) = 0;</h3>
			</div>
			<div id="readText(BString&, int)">
				<h3>virtual bool readText(BString&amp; text, int size) const = 0;</h3>
			</div>
			<div id="writeText(const BString&,int)">
				<h3>virtual bool writeText(const BString&amp; text, int size = -1) = 0;</h3>
			</div>
			<div id="readLine(BString&)">
				<h3>virtual bool readLine(BString&amp; line) const = 0;</h3>
			</div>
			<div id="writeLine(const BString&)">
				<h3>virtual bool writeLine(const BString&amp; line) = 0;</h3>
			</div>
			<div id="move(int)">
				<h3>bool move(int offset) const;</h3>
			</div>
			<div id="wmove(int)">
				<h3>bool wmove(int offset);</h3>
			</div>
			<div id="begin()">
				<h3>bool begin() const;</h3>
			</div>
			<div id="end()">
				<h3>bool end() const;</h3>
			</div>
			<div id="write(const char*)">
				<h3>bool write(const char* cstr);</h3>
			</div>
			<div id="write(char)">
				<h3>bool write(char ch);</h3>
			</div>
			<div id="write(char, int)">
				<h3>bool write(char ch, int count);</h3>
			</div>
			<div id="read(BByteArray&, int)">
				<h3>bool read(BByteArray&amp; bytes, int size) const;</h3>
			</div>
			<div id="read(BByteArray&)">
				<h3>bool read(BByteArray&amp; bytes) const;</h3>
			</div>
			<div id="write(const BByteArray&, int)">
				<h3>bool write(const BByteArray&amp; bytes, int size);</h3>
			</div>
			<div id="write(const BByteArray&)">
				<h3>bool write(const BByteArray&amp; bytes);</h3>
			</div>
			<div id="read(T&) const">
				<h3>inline bool read(T&amp; value) const;</h3>
			</div>
			<div id="write(const T&)">
				<h3>inline bool write(const T&amp; value);</h3>
			</div>
			<div id="operator << (const T&)">
				<h3>inline BStream&amp; operator &lt;&lt; (const T&amp; value);</h3>
			</div>
			<div id="operator >> (const T&)">
				<h3>inline BStream&amp; operator &gt;&gt; (const T&amp; value);</h3>
			</div>
		</div>
	</body>
</html>